package com.file.system.entity.system;


import com.file.system.plugin.dict.Dict;
import com.file.system.plugin.validated.SQLInjectionValidation;
import lombok.Data;
import lombok.experimental.Accessors;

import javax.validation.constraints.*;
import javax.validation.groups.Default;
import java.io.Serializable;


/**
 * 分布式文件配置
 *
 * @author jch
 */
@Data
@Accessors(chain = true)
public class WebFileSystem implements Serializable {

    private static final long serialVersionUID = 1L;


    //新增
    public interface add extends Default {
    }

    //修改
    public interface update extends Default {
    }

    /**
     * id
     */
    @Min(value = 1, message = "id长度最小1")
    private Long id;
    /**
     * 外层文件夹
     */
    @Min(value = 0, message = "外层文件夹长度1-100")
    private Integer folderOne;
    /**
     * 内层文件夹
     */
    @Min(value = 0, message = "内层文件夹长度1-100")
    private Integer folderTwo;
    /**
     * 当前文件夹文件数量
     */
    @Min(value = 0, message = "当前文件夹文件数量长度1-100")
    private Integer fileCount;
    /**
     * 每个文件夹文件标准数量
     */
    @Min(value = 1, message = "每个文件夹文件标准数量长度1-100")
    private Integer standardCount;
    /**
     * 外层文件夹最大数量
     */
    @Max(value = 100, message = "外层文件夹最大数量长度1-100")
    @Min(value = 1, message = "外层文件夹最大数量长度1-100")
    private Integer folderMax;
    /**
     * 文件后缀
     */
    @Size(min = 1, max = 300, message = "文件后缀长度1-300")
    @Dict("suffix")
    @SQLInjectionValidation(fieldName = "文件后缀", enableValidation = false)
    private String fkDictSuffix;
    /**
     * 系统文件存放根路径
     */
    @Size(min = 1, max = 50, message = "系统文件存放根路径长度1-50")
    @SQLInjectionValidation(fieldName = "系统文件存放根路径")
    private String rootPath;
}
